iT邦幫忙

2024 iThome 鐵人賽

DAY 0
0
自我挑戰組

30 天homelab實做練習系列 第 16

Day-16- 外接 USB硬碟櫃 (三) 檢測硬碟健康狀況 S.M.A.R.T.

  • 分享至 

  • xImage
  •  

前言

手上想看的訊息之一是硬碟健康狀況,S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology);在 Windows 環境下現多數使用免費工具 CrystalDiskInfo 來檢視其數據。而 Linux 環境大多使用 smartmontools ,大多數版本的 Linux 都已有現成套件可安裝。

安裝 smartmontools

apt update && apt install smartmontools 

其中包含了 smartctl 和 smartd

Proxmox VE 環境下

已有特別打包 PVE 版本的 smartmontools ,在安裝 PVE 時就跟著裝好了。
文件也特別有一篇 https://pve.proxmox.com/wiki/Disk_Health_Email_Alerts

~# dpkg -l | grep smartmontools
ii  smartmontools                        7.3-pve1                            amd64        control and monitor storage systems using S.M.A.R.T.

對 NVMe SSD 則有看到建議安裝 nvme-cli

~# dpkg -l | grep nvme
ii  libnvme1                             1.3-1                               amd64        NVMe management library (library)
ii  nvme-cli                             2.4+really2.3-3                     amd64        NVMe management tool

smartctl 指令

基本款

~# smartctl -a /dev/sda

用在手上的外接硬碟則是出現提示:
https://ithelp.ithome.com.tw/upload/images/20241001/20092552OYa0SOuwQj.png

而 PVE 網頁介面,在 DISKs -> 點單顆硬碟 -> Show S.M.A.R.T. Values 則是顯示 Error getting S.M.A.R.T. data: Exit code: 1 (500)
https://ithelp.ithome.com.tw/upload/images/20241001/20092552hoaxcRAgoo.png

查了查 smartmontools 有個各USB晶片支援回報表
https://www.smartmontools.org/wiki/Supported_USB-Devices_idVendor-0x1000
就連 Proxmox wiki 也提醒
嘗試出指令

~# smartctl -a -d sat /dev/sdf

過去遇過某市佔率高的 RAID / HBA 卡會是這樣的 syntax

~#  smartctl -a -d megaraid,0 /dev/sdx
  • 部份英語系論壇對 megaraid 硬碟的 S.M.A.R.T. 數據監控建議是安裝 megaraid 自家的工具…
  • 這邊依 Proxmox wiki 的作法 (接下一段落)

smartd

smartmontools 有用 service 形式跑
設定檔放在 /etc/smartd.conf

確認一下有在跑

~# systemctl status smartd.service
● smartmontools.service - Self Monitoring and Reporting Technology (SMART) Daemon
     Loaded: loaded (/lib/systemd/system/smartmontools.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-10-01 1X:45:45 CST; 40min ago
       Docs: man:smartd(8)
             man:smartd.conf(5)
   Main PID: 830 (smartd)
     Status: "Next check of 2 devices will start at 1X:45:45"
      Tasks: 1 (limit: 18852)
     Memory: 2.2M
        CPU: 31ms
     CGroup: /system.slice/smartmontools.service
             └─830 /usr/sbin/smartd -n -q never
~# systemctl status smartmontools.service
● smartmontools.service - Self Monitoring and Reporting Technology (SMART) Daemon
     Loaded: loaded (/lib/systemd/system/smartmontools.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-10-01 1X:45:45 CST; 39min ago
       Docs: man:smartd(8)
             man:smartd.conf(5)
   Main PID: 830 (smartd)
     Status: "Next check of 2 devices will start at 1X:45:45"
      Tasks: 1 (limit: 18852)
     Memory: 2.2M
        CPU: 31ms
     CGroup: /system.slice/smartmontools.service
             └─830 /usr/sbin/smartd -n -q never

把 想盯的磁碟代號寫進 /etc/smartd.conf

/dev/sdb -a -d sat
/dev/sdc -a -d sat

( 寫在 DEVICESCAN... 那行之後無效)

以手上的情況,外接盒如果是在作業系統開機之後才接上外接硬碟,就重跑 service 重抓硬碟(這流程不太好)。

systemctl restart smartd

或是

smartd -q onecheck

Debian12 可以用 journalctl -e | grep smartd 看看

https://ithelp.ithome.com.tw/upload/images/20241001/20092552hqA2UJHhKG.png

  • smartd 抓到的硬碟溫度,跟使用 smartctl 抓到的對不上…
  • 197 Current_Pending_Sector 要面對了…

https://pve.proxmox.com/wiki/Disk_Health_Email_Alerts


上一篇
Day-15- Prometheus Proxmox VE Exporter 到 Grafana
系列文
30 天homelab實做練習16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言